package com.ruoyi.product.domain.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class SkuDto {
    /**
     * SKU ID
     */
    private Long id;

    /**
     * 所属SPU ID
     */
    @Excel(name = "所属SPU ID")
    private Long spuId;

    /**
     * SKU编码
     */
    @Excel(name = "SKU编码")
    private String code;

    /**
     * 商品分类ID
     */
    @Excel(name = "商品分类ID")
    private Long categoryId;
    /**
     * 商品销量
     */
    @Excel(name = "商品销量")
    private Long salesVolume;
    /**
     * 规格属性JSON
     */
    @Excel(name = "规格属性JSON")
    private String specData;

    /**
     * 销售价
     */
    @Excel(name = "销售价")
    private BigDecimal price;

    /**
     * 原价
     */
    @Excel(name = "原价")
    private BigDecimal originalPrice;

    /**
     * 库存数量
     */
    @Excel(name = "库存数量")
    private Long stock;

    /**
     * 库存预警值
     */
    @Excel(name = "库存预警值")
    private Long lowStock;

    /**
     * 重量(g) 用于物流
     */
    @Excel(name = "重量(g) 用于物流")
    private BigDecimal weight;

    /**
     * 体积(cm³) 用于物流
     */
    @Excel(name = "体积(cm³) 用于物流")
    private BigDecimal volume;

    /**
     * 状态：0-禁用，1-启用
     */
    @Excel(name = "状态：0-禁用，1-启用")
    private Integer status;
    /**
     * 图片路径
     */
    @Excel(name = "图片路径")
    private String url;

    /**
     * 多个图片路径
     */
    private List<String> urls;

    /**
     * 规格组名
     */
    @Excel(name = "规格组名")
    private String specNameGroup;

    /**
     * 规格组值
     */
    @Excel(name = "规格组值")
    private String specValueGroup;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    /**
     * SPU名称
     */
    private String spuName;

    /**
     * SPU标题
     */
    private String spuTitle;

    /**
     * SPU描述
     */
    private String spuDescription;

    /**
     * 成本价
     */
    private BigDecimal costPrice;

    /**
     * 商品图片
     */
    private String productImages;

    /**
     * 商品名称
     */
    private String name;

    /**
     * 级别
     */
    private String level;

    /**
     * 规格值
     */
    private String specValues;

    /**
     * sku名
     */
    @Excel(name = "sku名")
    private String skuName;

    /**
     * 商品描述
     */
    @Excel(name = "商品描述")
    private String description;

}
